package com.pgeg.listener;

import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
import net.minecraft.util.registry.RegistryKey;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.gen.feature.ConfiguredFeature;

import static com.pgeg.util.Reference.MODID;

public class WorldGenListener {

    /*Ores World Gen*/
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreCopperOverworld = oreGenSettings("ore_copper_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> ore_mana_crystal_overworld = oreGenSettings("ore_mana_crystal_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreOrichalcumOverworld = oreGenSettings("ore_orichalcum_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreSaturniumOverworld = oreGenSettings("ore_saturnium_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreBrimstoneOverworld = oreGenSettings("ore_brimstone_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreMeteoriteOverworld = oreGenSettings("ore_meteorite_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreSilverOverworld = oreGenSettings("ore_silver_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreMithrilOverworld = oreGenSettings("ore_mithril_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreAirInfusedStoneOverworld = oreGenSettings("ore_air_infused_stone_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreFireInfusedStoneOverworld = oreGenSettings("ore_fire_infused_stone_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreEarthInfusedStoneOverworld = oreGenSettings("ore_earth_infused_stone_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreWaterInfusedStoneOverworld = oreGenSettings("ore_water_infused_stone_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreOrderInfusedStoneOverworld = oreGenSettings("ore_order_infused_stone_overworld");
    public static final RegistryKey<ConfiguredFeature<?, ?>> oreEntropyInfusedStoneOverworld = oreGenSettings("ore_entropy_infused_stone_overworld");

    /*Biome World Gen*/
    public static final RegistryKey<Biome> MAGIC_OAK_FOREST_KEY = biomeGenSettings("magic_oak_forest");

    private static RegistryKey<ConfiguredFeature<?, ?>> oreGenSettings(String path) {
        return RegistryKey.of(Registry.CONFIGURED_FEATURE_KEY, new Identifier(MODID, path));
    }

    private static RegistryKey<Biome> biomeGenSettings(String path) {
        return RegistryKey.of(Registry.BIOME_KEY, new Identifier(MODID, path));
    }
}
